package com.ruoyi.wb.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 维保计划对象 wb_plan
 *
 * @author ruoyi
 * @date 2024-10-14
 */
@ApiModel(value = "WbPlan vo")
@Data
public class WbPlanVo implements Serializable {

    @ApiModelProperty(value = "主键 id")
    private Long id;

    @ApiModelProperty(value = "客户 id")
    private Long clientId;

    @ApiModelProperty(value = "客户名")
    @Excel(name = "客户名")
    private String clientName;

    @ApiModelProperty(value = "客户地址")
    @Excel(name = "客户地址")
    private String clientAddress;

    @ApiModelProperty(value = "计划类型(可多选)，月、季度、半年、整年")
    private String planType;

    @ApiModelProperty(value = "计划名称")
    @Excel(name = "计划名称")
    private String planName;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划开始时间(yyyy-MM-dd)")
    private Date planStartDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划结束时间")
    private Date planEndDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "实际执行维保开始时间")
    private Date execStartTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "实际执行维保结束时间")
    private Date execEndTime;

    @ApiModelProperty(value = "合同 id")
    private Long contractId;

    @ApiModelProperty(value = "维保单位 id")
    private Long wbCompanyId;

    @ApiModelProperty(value = "维保单位")
    @Excel(name = "维保单位")
    private String wbCompanyName;

    @ApiModelProperty(value = "任务数")
    private Long contentNum;

    @ApiModelProperty(value = "待执行数")
    private Long executory;

    @ApiModelProperty(value = "负责人 id")
    private String projectPrincipalId;

    @ApiModelProperty(value = "负责人项目")
    private String projectPrincipalName;

    @ApiModelProperty(value = "技术负责人 id")
    private Long technololyPrincipalId;

    @ApiModelProperty(value = "技术负责人姓名")
    @Excel(name = "技术负责人姓名")
    private String technololyPrincipalName;

    @ApiModelProperty(value = "操作者 id")
    private Long operaterId;

    @ApiModelProperty(value = "操作者姓名")
    @Excel(name = "操作者姓名")
    private String operaterName;

    @ApiModelProperty(value = "执行状态")
    private Long execStatus;

    @ApiModelProperty(value = "审核状态")
    private Long auditStatus;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "完成时间")
    private Date finishTime;

    @ApiModelProperty(value = "凭条")
    private String entrySlip;

    @ApiModelProperty(value = "现场照片")
    private String sitePhoto;

    @ApiModelProperty(value = "删除状态(1 存在，2 删除)")
    private Long delFlag;

    @ApiModelProperty(value = "消防师 id")
    private Long fireFightingId;

    @ApiModelProperty(value = "消防师姓名")
    private String fireFightingName;

    @Excel(name = "执行状态")
    private String execStatusName;

    @Excel(name = "计划类型")
    private String planTypeName;

    @Excel(name = "完成时间")
    private String finishTimes;

    @Excel(name = "计划开始时间")
    private String planStartDates;

    @ApiModelProperty(value = "维保计划目录及子目录")
    private List<WbPlanClassifyVo> planClassifyVos;

    @ApiModelProperty(value = "工程师 id")
    private Long engineerId;

    @ApiModelProperty(value = "工程师姓名")
    @Excel(name = "工程师姓名")
    private String engineerName;

    @ApiModelProperty(value = "待审核数量")
    private Integer numberOfPendingAudits;

    @ApiModelProperty(value = "审核中数量")
    private Integer quantityUnderReview;

    @ApiModelProperty(value = "驳回数量")
    private Integer rejectedQuantity;

    @ApiModelProperty(value = "驳回数量")
    private Integer passNumber;

    @ApiModelProperty(value = "合同 名称")
    private String contractName;


    /** 设施名称 */
    @Excel(name = "设施名称")
    private String facilityName;

    /** 应用场所 */
    @Excel(name = "应用场所")
    private String applicationPlace;

    /** 检测类别 */
    @Excel(name = "检测类别")
    private String detectCategory;

    /** 应用场所地址 */
    @Excel(name = "应用场所地址")
    private String applicationPlaceAddr;

    /** 复检时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "复检时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reinspectionTime;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactNumber;

    /** 备案编号 */
    @Excel(name = "备案编号")
    private String recordNumber;

    /** 备案时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "备案时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date filingTime;

    /** 设施列表 */
    @Excel(name = "设施列表")
    private String listOfFacilities;

    /** 检测编号 */
    @Excel(name = "检测编号")
    private String detectionNumber;



}